Cloning virtual machine instances can be problematic because cloning yields two identical entities (i.e., virtual machine instances) within a computing system such as a group of computing devices interconnected via a communications link such as a communications network and hosting virtual machine modules. Furthermore, cloning virtual machine instances can be complicated because it can be useful for a cloned virtual machine instance to have an identity value (e.g., a name, an identifier, a password, a security credential such as a digital certificate, a locale, a time zone, and/or some other value associated with an identity of a virtual machine instance) distinct from an identity value of a source virtual machine instance.
Some systems (i.e., computing devices and/or groups of computing devices) distinguish cloned virtual machine instances from source virtual machine instances using parameters stored at a hypervisor. For example, a cloned virtual machine instance can communicate with a hypervisor to access runtime parameters to be applied to the cloned virtual machine instance to differentiate the cloned virtual machine instance from a source virtual machine instance. Thus, the cloned virtual machine instance must be able to communicate with the hypervisor.
Communication with hypervisors can be difficult because hypervisor vendors implement (or support) different communications protocols. Thus, if a virtual machine instance will be hosted at virtual machine modules in communication with hypervisors from different hypervisor vendors, that virtual machine instance will include multiple software applications to communicate with each of the different hypervisors.
Including these software applications in a cloned virtual machine image (and, thus, in the image of the virtual disk of that cloned virtual machine image) complicates the cloning process because it results in an increased size of the virtual disk image and additional maintenance overhead to support (i.e., update) these software applications. Additionally, system administrators or system integrators are limited to the parameters provided by the vendor of these software applications and/or hypervisor. Moreover, because these software applications are typically specific to a hypervisor (or type of hypervisor), system administrators or system integrators typically must implement the software applications or other processes for each type of hypervisor that will be hosting virtual machine. Furthermore, generating multiple versions of a virtual machine instance (e.g., a different version for each hypervisor at which that virtual machine instance will be hosted) complicates maintenance of that virtual machine instance because each version of the virtual machine instance should be changed in response to changes to one of the versions of the virtual machine instance to ensure consistency across the various versions of the virtual machine instance. As a result, administration of virtual machine instances can be complex and cost-intensive.